package eu.catengine.common.iface;

import eu.catengine.common.listener.ColorListener;
import eu.catengine.primitive.Color;

public interface IColorable
{
    /**
     * Ustawia wartość koloru na podany jako parametr.
     */
    public void setColor(Color color);

    /**
     * Ustawia wartość koloru na podany jako parametr.
     */
    public void setColor(float red, float green, float blue);

    /**
     * Ustawia wartość koloru na podany jako parametr.
     */
    public void setColor(float red, float green, float blue, float alpha);

    /**
     * Zwraca kolor obiektu.
     */
    public Color getColor();

    /**
     * Zwraca wartość czerwonej składowej dla koloru obiektu.
     */
    public float getRed();

    /**
     * Zwraca wartość zielonej składowej dla koloru obiektu.
     */
    public float getGreen();

    /**
     * Zwraca wartość niebieskiej składowej dla koloru obiektu.
     */
    public float getBlue();

    /**
     * Zwraca wartość składowej odpowiedzialnej za przeroczystość dla koloru
     * obiektu.
     */
    public float getAlpha();

    /**
     * Ustawia obiekt nasłuchujący dla koloru.
     */
    public void setColorListener(ColorListener listener);

}
